package org.summer.generator.channel;

/**
 * 文件写入通道，写入代码文件到项目目录时需要使用此通道
 */
public interface FileWriterChannel {

    /**
     * 将内容写入到文件中
     * @param content 需要写入的内容
     */
    void writer(String content);

    /**
     * 将内容写入到文件中，并且换行，如果代码已经换行，会控制一行
     * @param content 需要写入的内容
     */
    default void writerNewline(String content){
        writer(content + System.lineSeparator());
    }

    /**
     * 写入一个空行到文件中
     */
    default void writerEmptyLine(){
        writer(System.lineSeparator());
    }

    /**
     * 关闭文件写入通道
     */
    void close();
}
